أتمتة إعداد خادم أولي أوبونتو بإصدار 18.04
تعتبر أوبونتو واحدة من أكثر توزيعات لينكس شهرة واستخدامًا في بيئات الخوادم، وذلك بفضل مرونتها، سهولة استخدامها، ودعمها الواسع. عند إعداد خادم أولي باستخدام أوبونتو 18.04، قد يتطلب الأمر مجموعة من الخطوات الأساسية لتحسين الأداء، وضمان الأمان، وتسهيل الصيانة على المدى الطويل. مع تزايد الحاجة إلى أتمتة هذه العمليات لتقليل الوقت والجهد البشري، أصبحت الأتمتة من الأساسيات الضرورية في العديد من بيئات العمل. في هذا المقال، سنتناول كيفية أتمتة إعداد خادم أولي أوبونتو 18.04 باستخدام أدوات مختلفة من البرمجيات.
1. متطلبات النظام والتجهيزات الأولية
قبل البدء في إعداد الخادم، يجب أن تكون لديك بعض المتطلبات الأساسية:
-
جهاز خادم أو بيئة افتراضية: يمكن أن يكون الخادم جهازًا فعليًا أو جهازًا افتراضيًا، حيث يمكنك استخدام أدوات مثل VirtualBox أو VMware لتشغيل أوبونتو 18.04.
-
نسخة أوبونتو 18.04: يمكن تنزيل النسخة من الموقع الرسمي أو من خلال أي مصدر موثوق آخر.
-
إتصال بالإنترنت: لتثبيت التحديثات وحزم البرمجيات الضرورية.
2. تجهيز البيئة للأتمتة
أول خطوة في أتمتة إعداد الخادم هي التأكد من أن النظام لديك مجهز لتحميل التحديثات وتثبيت الحزم بشكل غير يدوي. هناك عدة أدوات وأدوات مساعدة يمكن استخدامها لتنفيذ هذه المهام. بعض هذه الأدوات تشمل:
-
Ansible: أداة مفتوحة المصدر لإدارة الأنظمة، وتعتبر واحدة من أبرز الأدوات في أتمتة إعدادات الخوادم.
-
Puppet: أداة أخرى شائعة لإدارة الأنظمة.
-
Chef: أداة أخرى معروفة في مجال الأتمتة.
-
Terraform: تستخدم بشكل رئيسي في إدارة البنية التحتية.
3. إعداد الخادم باستخدام Ansible
في هذا القسم، سنتناول كيفية استخدام Ansible لأتمتة إعداد خادم أولي أوبونتو 18.04.
تثبيت Ansible على أوبونتو 18.04
للبدء في استخدام Ansible على الخادم، تحتاج أولًا إلى تثبيت الأداة. يمكن تثبيتها بسهولة من مستودعات أوبونتو باستخدام الأوامر التالية:
bashsudo apt update sudo apt install ansible -y
إعداد ملف الجرد (Inventory)
Ansible يعتمد على ملف الجرد لتحديد الخوادم التي سيقوم بإدارتها. قم بإنشاء ملف يسمى hosts أو inventory يحتوي على تفاصيل الخوادم المستهدفة. في حالة إعداد خادم واحد، يمكن أن يكون الملف بالشكل التالي:
ini[servers]
your_server_ip
كتابة Playbook لأتمتة الإعدادات
Playbook هو ملف يحتوي على تعليمات (أوامر) يتم تنفيذها على الخوادم المستهدفة. لنفترض أن هدفنا هو إعداد خادم بأدوات أساسية مثل Nginx و MySQL و PHP. سنكتب Playbook كما يلي:
yaml---
- name: إعداد خادم أوبونتو 18.04
hosts: servers
become: yes
tasks:
- name: تحديث النظام
apt:
update_cache: yes
upgrade: yes
- name: تثبيت Nginx
apt:
name: nginx
state: present
- name: تثبيت MySQL
apt:
name: mysql-server
state: present
- name: تثبيت PHP
apt:
name: php-fpm
state: present
- name: بدء خدمة Nginx
service:
name: nginx
state: started
enabled: yes
تشغيل Playbook
بعد كتابة Playbook، يمكن تشغيله باستخدام الأمر التالي:
bashansible-playbook -i inventory setup.yml
سيقوم Ansible الآن بتنفيذ المهام المحددة في Playbook على الخادم أو الخوادم المستهدفة.
4. إعداد الأمان باستخدام أتمتة
من الأهمية بمكان عند إعداد خادم أوبونتو 18.04 أن تهتم بالأمان. يمكن استخدام أدوات مثل ufw (جدار الحماية غير المعتمد من قبل أوبونتو) أو fail2ban لتوفير حماية إضافية.
إعداد جدار الحماية باستخدام UFW
UFW هو أداة لتهيئة الجدار الناري على أوبونتو. يمكن أتمتة إعداده باستخدام Ansible كما يلي:
yaml- name: إعداد جدار الحماية UFW
hosts: servers
become: yes
tasks:
- name: السماح بالاتصالات عبر SSH
ufw:
rule: allow
name: OpenSSH
- name: السماح بالاتصالات عبر HTTP
ufw:
rule: allow
name: 'Nginx HTTP'
- name: تفعيل UFW
ufw:
state: enabled
logging: on
تثبيت fail2ban
Fail2ban هو برنامج يساعد في حماية الخوادم من محاولات تسجيل الدخول غير المصرح بها. يمكن أتمتة تثبيته باستخدام Ansible:
yaml- name: تثبيت Fail2Ban
hosts: servers
become: yes
tasks:
- name: تثبيت fail2ban
apt:
name: fail2ban
state: present
5. إعداد نسخ احتياطي تلقائي
من المهم إعداد نسخ احتياطي بشكل دوري لضمان عدم فقدان البيانات. يمكن أتمتة عملية النسخ الاحتياطي باستخدام أدوات مثل rsync أو duplicity، وتحديد الجدول الزمني للنسخ الاحتياطي باستخدام cron.
إعداد نسخ احتياطي باستخدام rsync
يمكن إنشاء Playbook باستخدام Ansible لأتمتة عملية النسخ الاحتياطي:
yaml- name: إعداد النسخ الاحتياطي التلقائي
hosts: servers
become: yes
tasks:
- name: نسخ المجلدات المهمة
command: "rsync -avz /important_folder /backup_folder"
إعداد Cron job للنسخ الاحتياطي التلقائي
لتحديد وقت معين لإجراء النسخ الاحتياطي، يمكن استخدام cron jobs في أوبونتو. يمكن أتمتة ذلك باستخدام Ansible:
yaml- name: إعداد Cron job للنسخ الاحتياطي
hosts: servers
become: yes
tasks:
- name: إضافة cron job
cron:
name: "نسخ احتياطي يومي"
minute: "0"
hour: "3"
job: "rsync -avz /important_folder /backup_folder"
6. التحديثات التلقائية
تعد التحديثات التلقائية من الخطوات الأساسية لضمان بقاء النظام آمنًا ويعمل بكفاءة. يمكن تكوين التحديثات التلقائية باستخدام أداة unattended-upgrades.
تثبيت أداة التحديث التلقائي
لتمكين التحديثات التلقائية على أوبونتو، يمكنك استخدام Ansible لتثبيت unattended-upgrades:
yaml- name: تثبيت تحديثات تلقائية
hosts: servers
become: yes
tasks:
- name: تثبيت unattended-upgrades
apt:
name: unattended-upgrades
state: present
تمكين التحديثات التلقائية
بعد تثبيت الأداة، يمكن تكوينها لأتمتة عملية التحديثات:
yaml- name: تمكين التحديثات التلقائية
hosts: servers
become: yes
tasks:
- name: تفعيل التحديثات التلقائية
lineinfile:
path: /etc/apt/apt.conf.d/20auto-upgrades
regexp: '^APT::Periodic::Unattended-Upgrade'
line: 'APT::Periodic::Unattended-Upgrade "1";'
7. مراقبة الأداء
من المهم مراقبة أداء الخادم لضمان عدم وجود مشاكل تؤثر على أدائه. يمكن استخدام أدوات مثل htop أو netdata لمراقبة الخادم.
تثبيت Netdata
لتثبيت Netdata على الخادم باستخدام Ansible، يمكنك استخدام Playbook مثل هذا:
yaml- name: تثبيت Netdata
hosts: servers
become: yes
tasks:
- name: تثبيت Netdata
command: "bash <(curl -Ss https://my-netdata.io/kickstart.sh)"
8. الخلاصة
أتمتة إعداد خادم أولي أوبونتو 18.04 يمكن أن يساعد في تسريع العملية، وتحسين الأمان، وتوفير الوقت في الصيانة المستمرة. باستخدام أدوات مثل Ansible وUFW وFail2ban وغيرها، يمكن إعداد الخادم بأقل جهد بشري. بالإضافة إلى ذلك، فإن التحديثات التلقائية، النسخ الاحتياطية، والمراقبة المستمرة هي عناصر أساسية لضمان استقرار النظام وأدائه على المدى الطويل.

